package com.example.`2022git110341`

import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.widget.ArrayAdapter
import android.widget.ListView
import androidx.appcompat.app.AppCompatActivity
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.concurrent.thread

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        thread{
            val str= readFileFromRaw(R.raw.citycode)
            val  gson= Gson()
            val cityType=object : TypeToken<List<CityItem>>(){}.type
            var cities:List<CityItem> =gson.fromJson(str ,cityType)
            cities=cities.filter { it.city_code!="" }

            runOnUiThread{
                val adapter= ArrayAdapter<CityItem>(this,android.R.layout.simple_list_item_1,cities)
                val list: ListView=findViewById(R.id.list)
                list.adapter=adapter
                list.setOnItemClickListener { parent, view, position, id ->
                    val cityCode=cities[position].city_code
                    val intent= Intent(this, MainActivity2::class.java)
                    intent.putExtra("city_code",cityCode)
                    startActivity(intent)
                }
                Log.d("MainActivity","$cities")
            }
        }
    }

    fun readFileFromRaw(rawName: Int): String? {
        try {
            val inputReader = InputStreamReader(resources.openRawResource(rawName))
            val bufReader = BufferedReader(inputReader)
            var line: String? = ""
            var result: String? = ""
            while (bufReader.readLine().also({ line = it }) != null) {
                result += line
            }
            return result
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return ""
    }
}